package com.yungu.swift.system.marketing.model.param;

import com.yungu.swift.base.model.admin.AdminUuidParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @author : cuixiuyin
 * @date : 2019/8/7
 */
@Data
public class AdminCouponGiftParam extends AdminUuidParam {

    @ApiModelProperty(value = "代理商uuid", hidden = true)
    private String agentUuid;

    @ApiModelProperty(value = "公司uuid", hidden = true)
    private String companyUuid;

    @ApiModelProperty(value = "礼包名称")
    private String name;

    @ApiModelProperty(value = "礼包类型（1.注册。2.乘客邀请。3.司机邀请。4.二维码/微信链接。5.自动指定人群。6.一次性发放 7.兑换码口令）", example = "0")
    private Integer type;

    @ApiModelProperty(value = "礼包子类型（1. 司机邀请乘客 2. 司机邀请司机。）", example = "0")
    private Integer subType;

    @ApiModelProperty(value = "发放城市")
    private String sendCity;

    @ApiModelProperty(value = "礼包总数量", example = "0")
    private Integer remainNumber;

    @ApiModelProperty(value = "(兑换码/口令、二维码/微信链接) 有效期开始日期")
    private Date effectiveDate;

    @ApiModelProperty(value = "(兑换码/口令、二维码/微信链接) 有效期结束日期")
    private Date expiryDate;

    @ApiModelProperty(value = "(一次性发放) 1 全部用户 0 特定用户", example = "0")
    private Integer sendType;

    @ApiModelProperty(value = "(一次性发放) 指定发放用户")
    private String sendUser;

    @ApiModelProperty(value = "(二维码/微信链接) 领取用户限制 0不限 1仅限新用户 2仅限老用户", example = "0")
    private Integer limitDrawType;

    @ApiModelProperty(value = "(兑换码/口令) 限制领取次数", example = "0")
    private Integer limitDrawCount;

    @ApiModelProperty(value = "(兑换码/口令) 码类型 1兑换码，2口令", example = "0")
    private Integer codeType;

    @ApiModelProperty(value = "(兑换码/口令) 口令信息")
    private String passwordsCode;

    @ApiModelProperty(value = "(兑换码/口令) 兑换码信息")
    private List<String> redeemCodes;

    @ApiModelProperty(value = "(兑换码/口令) 创建方式 1自动生成 2导入码库", example = "0")
    private Integer createCodeType;

    @ApiModelProperty(value = "(乘客邀请/司机邀请) 被邀请者完成条件：1、成功完成第一个订单后。2 成功注册后", example = "0")
    private Integer getMode;

    @ApiModelProperty(value = "(司机邀请) 司机返现金额", example = "0.0")
    private Double driverCashback;

    @ApiModelProperty(value = "(乘客邀请) 邀请者奖励方式：0:无奖励; 1:自定义", example = "0")
    private Integer inviteRewardMethod;

    @ApiModelProperty(value = "(乘客邀请/司机邀请) 被邀请者奖励方式：0:无奖励; 1:自定义; 2:新人注册礼包; 3:新人注册礼包+自定义礼包", example = "0")
    private Integer invitedRewardMethod;

    @ApiModelProperty(value = "被邀请者礼包名称")
    private String invitedGiftName;

    @ApiModelProperty("(二维码/链接) 背景图片")
    private String backgroundImage;

    @ApiModelProperty("(二维码/链接) 领取按钮图片")
    private String buttonImage;

    @ApiModelProperty("(二维码/链接) 规则说明")
    private String ruleDescription;

    @ApiModelProperty(value = "(自动指定人群-安慰连续叫单不成功) 限制叫单分钟数（分钟）", example = "0")
    private Integer limitTime;

    @ApiModelProperty(value = "(自动指定人群-安慰连续叫单不成功) 限制叫单数", example = "0")
    private Integer limitCount;

    @ApiModelProperty(value = "(自动指定人群-安慰连续叫单不成功) 限制叫单等待时长（秒）", example = "0")
    private Integer limitWait;

    @ApiModelProperty(value = "(自动指定人群-唤醒沉睡用户) 距离上次叫车后，未使用天数", example = "0")
    private Integer unusedDays;

    @ApiModelProperty(value = "(自动指定人群-激励高频用户) 高频天数", example = "0")
    private Integer highFrequencyDays;

    @ApiModelProperty(value = "(自动指定人群-激励高频用户) 高频次数", example = "0")
    private Integer highFrequencyNum;

    @ApiModelProperty(value = "是否有更新优惠券信息 1 是 0 否", example = "0")
    private Integer hasChangeCoupon;

    @ApiModelProperty(value = "优惠券礼包信息")
    private List<AdminCouponParam> couponParams;


}
